/**解决tstolua一些兼容性问题 */
export default class L_Array{

    // static push(arr:any[],value:any):any[]{
    //     arr[arr.length]=value;
    //     return arr;
    // }

    //     static push(arr:any[],value:any):any[]{
    //     arr[arr.length]=value;
    //     return arr;
    // }

    /**自动解构来追加属性  例如values参数是Array则先执行解构...[] */
    static pushByDec(target:any[],values:any){
        if(target==null) {
            target=[]
        }
        if(values==null)return
        if(Array.isArray(values)){
            target.push(...values)
        }else{
            target.push(values)
        }
    }

    /**
     * 合并数组内容
     * @param arr  原始数组
     * @param values  要合并的值 支持string | number | Array<any>
     * @returns 重构后的数组
     */
    // static merge(arr:any[],values:any):any[]{
    //     let rsArr:any[]=[];
    //     let index:number=0;
    //     if(arr!=null){
    //         for(let i=0;i<arr.length;i++){
    //             rsArr[index]=arr[i];
    //             index++;
    //         }
    //     }
    //     if(values!=null && Array.isArray(values)){
    //         for(let i=0;i<values.length;i++){
    //             if(arr.indexOf(values[i])==-1){   //如果是数组A存在的就不要重复添加了？可能需要需求来改动
    //                 rsArr[index]=values[i];
    //                 index++;
    //             }
    //         }
    //     }else if(values!=null){
    //         rsArr[index]=values;
    //     }
    //     return rsArr;
    // }

    /**
     * 通过判断数组的值是否存在进行移除
     * @param arr  原始数组
     * @param values 要移除的值 支持string | number | Array<any>
     * @returns 重构后的数组
     */
    static removeByDec(target:any[],values:any){
        if(values==null || values.length==0){
            return target;
        }
        let rVals=[];
        if( !Array.isArray(values)){
            rVals=[values]
        }else{
            rVals=values;
        }
        let rsArr:any[]=[];
        let index:number=0;
        if(target!=null){
            for(let i=0;i<target.length;){
                if(rVals.indexOf(target[i])!=-1){
                    //rsArr[index]=target[i];
                    //index++;
                    target.splice(i,1)  
                }else{
                    i++
                }

            }
        }
        //target=rsArr;
        //return rsArr;
    }

}